package fileIO;
/*
 * 如何使用
 * 文件具有固定的字节格式
 * 大型文件
 */
import java.io.FileInputStream;
import java.io.IOException;
import java.io.RandomAccessFile;

public class RandomAccessFileTest {
	public static void main(String[] args) {
		
		
		
		try {
			test2();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		
		try {
			test1();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}

	private static void test2() throws IOException {
		RandomAccessFile f = 
			new RandomAccessFile("/home/tarena/Desktop/2.txt", "rw");
		f.writeUTF("幽你一默");//为什么输出的文件不能用文本查看
		f.close();
	}

	private static void test1() throws IOException {
		RandomAccessFile f = 
			new RandomAccessFile("/home/tarena/Desktop/1.txt", "rw");
		f.write(97);//文件不存在时会创建
		f.writeInt(97);
		f.writeDouble(97.0);
		f.writeUTF("a中");//会在字符串前加
		f.seek(0);
		System.out.println((byte)f.readByte());
		System.out.println(f.readInt());
		System.out.println(f.readDouble());
		System.out.println(f.readUTF());//先读两个字节确定长度，再读字节
		f.close();
		//查看文件byte值
		FileInputStream fis = new FileInputStream("/home/tarena/Desktop/1.txt");
		byte b;
		//可以看到字符串前有加04
		do{
			b=(byte) fis.read();
			System.out.println(b);
		}while(b!=-1);
	}
}

